Sourcing terms into a search engine

ABSTRACT

Information may be presented to a user by receiving a selection of one or more terms passively displayed in a document, loading the terms to a search configuration, generating first results responsive to a user&#39;s predicted interest as expressed in the search configuration, and enabling display of the first results.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to U.S. Provisional Application No.60/684,522, titled “Sourcing Terms into a Search Engine”, and filed May26, 2005, which is incorporated herein by reference in its entirety.

This application is related to U.S. application Ser. No. 10/651,303,titled “Host-based Intelligent Results Related to a Character Stream”and filed Aug. 29, 2003; U.S. Provisional Application No. 60/426,806,titled “Software Enabling and Enhancing Communications and FunctionalityAt A Client Computer” and filed Nov. 18, 2002; U.S. ProvisionalApplication No. 60/427,944, titled “Keyword and Search Navigation” andfiled Nov. 21, 2002; U.S. Provisional Application No. 60/471,337, titled“Smart Box” and filed May 19, 2003; U.S. Provisional Application No.60/471,338, titled “Smart Box” and filed May 19, 2003; and U.S.Provisional Application No. 60/488,400, titled “Smartbox”, and filedJul. 21, 2003. Each of these applications is hereby incorporated byreference in their entirety.

TECHNICAL FIELD

This document relates to content retrieval and presentation.

BACKGROUND

The Internet enables users to access a great amount of information. Auser with a web browser, messaging application, or other proprietaryapplication may retrieve information from large libraries to accessgreat amounts of information. Navigating the great amount of informationcan challenge some users.

SUMMARY

In a general aspect, information is presented to a user. Terms within adocument are presented to visually distinguish selectable candidatesearch terms that are included within the document from other terms thatare included within the document. Selection of one or more of theselectable candidate search terms from within the document is enabled. Aquery string that includes the selected candidate search terms isgenerated. The query string is applied to a search interface. Queryresults are received based on the applied query string. The queryresults are presented.

With respect to at least the general aspect, implementations may includeone or more of the following features. For example, the arrangement ofthe document may be retained on a visual display when visuallydistinguishing selectable candidate search terms from other terms withinthe document and enabling selection of one or more of the selectablecandidate search terms from within the document by detecting selectionof a portion of the screen real estate dedicated to presenting thedocument and corresponding to the selected candidate search terms.

A query string that expressly excludes or disfavors candidate searchterms selected from within the document may be generated. A query stringthat expressly includes or favors candidate search terms selected fromwithin the document may be generated.

A compilation of candidate search terms may be generated from multipledocuments. The query string may be revised as a user progresses throughthe multiple documents and selects the candidate search terms from atleast two different documents in the multiple documents.

Resultant pages may be presented in association with the document sothat the user may perceive an effect of selecting the candidate term onthe query results.

A search control enabling a user to specify an input mode may bepresented. An additive control may be presented and configured to addthe selected candidate search terms to the search query in response toselecting a candidate search term in the document. A subtractive controlmay be presented and configured to add the selected candidate searchterms to the search query as terms that should not appear in the queryresults.

The user may be enabled to continue to select one or more additionalcandidate search terms as the query results are being presented. Theadditional candidate search terms may be used to modify the querystring. The modified query string may be applied to the searchinterface. Updated results may be received based on the applied querystring. The updated results may be presented so that the user mayperceive an effect of modifying the query string in differences betweenthe query results and the updated results.

One or more topics responsive to the query string may be presented. Theuser may be enabled to modify the query string with inclusion orexclusion of at least one of the topics. The query string may be appliedto the search interface. The query results may be received based on theapplied query string. The query results may be presented so that theuser may perceive an effect of modifying the query string based onmodifying the query string with inclusion or exclusion of the at leastone topic.

The user may be enabled to specify interest in a portion of the queryresults or interest in avoiding the portion of the query results andgenerating the first results responsive to the user specifying interestin the first results related to the selected candidate search terms orinterest in avoiding the query results related to the selected candidatesearch terms.

Transparent to the user, the document may be automatically analyzed togenerate contextual information. The contextual information may be usedas the query string is applied to the search interface. Transparent tothe user, non-selected terms appearing in the document related to theselected candidate search terms may be automatically accessed. Thenon-selected terms may be used as the query string is applied to thesearch interface.

User manipulation of the query results may be monitored. That the userinvestigated a portion of the query results may be determined. That theportion was not responsive may be determined. The query string may bemodified to reflect that the portion was not responsive to a user'spredicted interest.

The user may be prompted to confirm that that the portion was notresponsive. That the portion was not responsive may be specified withoutconfirmation from the user.

The query string may be maintained as the user changes the document. Theuser may be enabled to modify the query string with the candidate searchterms after changing the document. The user may specify that queryresults associated with less viewership should be rendered before queryresults associated with more viewership.

DESCRIPTION OF DRAWINGS

FIGS. 1-8 are exemplary graphical user interfaces (GUIs) illustratinghow real-time results related to a selected items within a sourcedocument may be presented.

FIG. 9 illustrates a communications system that may be used tointelligently present results related to a term stream analyzed by ahost.

FIG. 10 is a flow chart of an exemplary process by which a client mayuse a host to intelligently present results related to a term stream.

FIG. 11 is a flow chart of an exemplary process by which a client maymodify a search configuration through explicit and implicit instructionsfrom the user.

DETAILED DESCRIPTION

The Internet enables access to large volumes of content. A key challengein providing a better access experience for users is enabling the usersto access information most relevant to their interests with the leastamount of effort in retrieving the results.

To better provide a user with the ability to easily invoke a search forinformation most relevant to content they presently access, a user ispresented with a collection of terms that appear within a document theypresently view, arranged and presented for selection as search terms.Specifically, for example, one or more selectable search terms within adocument being viewed is made identifiable and selectable, such that aquery string that includes terms selected from within the arrangementmay be easily generated through selection of those terms. The querystring is applied to a search interface and query results may bereceived based on the applied query string. Finally, query results arepresented.

For example, a user may elect to invoke a search tool within a webbrowser. Invoking the search tool may allow the user to select terms inorder to add the terms to a search configuration. The addition of asearch term to the search configuration may trigger an update to theresults so that a user may dynamically add terms to a searchconfiguration to observe the impact on search results. Additionally, theuser also may be presented with a taxonomy of search results (e.g.,topics) so that the user may modify the search configuration to include,avoid, favor, or disfavor specified topics from the search results. Byenabling terms appearing in a source document or topics related to thesource document to added or removed from a search configuration andautomatically presenting results in response, a user may quicklynavigate a large library with a reduced number of actions.

FIGS. 1-8 illustrate how a user may select one or more passive terms ina document in order to generate results responsive to a user's predictedinterest. Generally, the GUIs shown in FIGS. 1-8 illustrate GUIsgenerated by a source application (e.g., a web browser) that displays asource document (e.g., a web page) and that are equipped with searchcontrols. The search controls enable a user to select passive terms inthe document in order to generate results responsive to a user'spredicted interest. One example of passive terms are terms that have notnecessarily been designated as hyperlinked terms, although the user alsomay select hyperlinked terms for use in generating a search query.

FIG. 1 illustrates an exemplary GUI 100 enabling a user to select termsin order to generate results responsive to a user's predicted interest.In particular, GUI 100 illustrates how a user may select terms appearingin a web page to generate search query. As shown, GUI 100 includes adocument 105, search controls 110, search configuration 120, andresultant topics 130 that are rendered in a web browser along side asource web page (http://espn.com/sandiegopadres) directed to coverage ofa baseball team. The search controls 110 include check boxes that allowselected words and/or phrases to be added or “subtracted” from a searchconfiguration. A term is “subtracted” in that the search query isconfigured to retrieve search results that avoid, disfavor, or do notinclude the “subtracted” term.

Search controls 110 include a form enabling the user to enter additionalterms to be used in the query string. For example, if the user believesthat the addition of a particular term that does not appear in thesource document may realize the desired results, and therefore may usethe search controls 110 to effect additions of such terms to the querystring.

Search configuration 120 illustrates that a query string has beenconfigured to search for terms related to “Wells” and “Padres”—the termsthat have been selected from within the source document. In oneimplementation, the user selects terms by using a mouse button to selectwords or phrases (e.g., by right clicking on terms appearing in a webpage). In another implementation, the user selects the terms by using ascrolling control to advance through terms appearing in the documentand/or using a touch screen to identify the selected terms.

In one implementation, selecting a term triggers a display for relatedmetadata (not shown). The user then may select one or more terms in themetadata to further modify the query string. For example, afterselecting “Wells”, the search configuration 120 may add a controldisplaying “Yankees” and “No Hitter” as metadata for “Wells.” The usermay select one or more of the terms in the metadata to modify the searchconfiguration. Alternatively, in another configuration, the terms“Yankees” and “No Hitter” are automatically added to the searchconfiguration without triggering a display.

In yet another implementation, the user elect to exclude one or moreterms in the metadata from the results. As a result, the user may selectone of the terms in the metadata to add the selected term to the querystring with in an indication that the query results should not includeand/or be responsive to the selected term. For example, a user mayselect “Yankees” and indicate that the query results should not reflectany results related to “Wells” that also relates to the “Yankees.”

The resultant topic 130 presents a list of topics related to the presentsearch configuration. For example, a user may elect to see thetaxonomy/classification of results available. The user then may selecttopics in order to retrieve results likely to be more responsive to auser's interest.

As the user interacts with the displayed source document(s) and selectsa sequence of terms to generate a query string from within the sourcedocument, the search configuration 120 and the resultant topics 130 maybe updated to reflect the user's selections. Thus, when a user selects aword or phrase for subtraction, the subtracted term may be rendered inthe search configuration 120, and the resultant topics 130 may beupdated to reflect the subtracted term.

FIG. 2 illustrates another exemplary GUI 200 enabling a user to selectterms in order to generate results responsive to a user's predictedinterest. Also, GUI 200 illustrates how search results 230 may include arepresentation of a web page, representative text appearing in a webpage, or a synopsis of a web page. As shown, GUI 200 includes document205, search controls 210, search configuration 220, and resultant pages230 that are rendered in a web browser along side a source web page(http://espn.com/sandiegopadres) directed to coverage of a baseballteam.

The document 205, search controls 210, and search configuration 220 areidentical to the GUI 100 shown in FIG. 1. However, rather than a list ofresultant topics, GUI 200 includes resultant pages 230 that illustrate anumber of different manners in which resultant pages may be rendered.The first result rendered in resultant pages 230 is a thumbnail of a webpage determined to be responsive to a user's predicted interest asindicated by the terms selected. The second result rendered in resultantpages 230 includes an address for a web page and an excerpt determinedto be relevant to a user's interests. The third result includes anaddress for a web page and a synopsis of the web page.

The resultant pages 230 may be rendered so that the user may interactwith the rendered results to modify the search configuration. Forexample, a user may subtract the first result from the searchconfiguration, and add the second result to the search configuration.“Subtracting” a term may include configuring a search query such thatthe query results do not reflect or include the subtracted term. In oneimplementation, a user left clicks on a representation of the result torender the result in a different window while right clicking on therepresentation to modify search configuration with the selectedrepresentation. Modifying the search configuration with the selectedrepresentation may generate a list of metadata for the result andmodifies the search configuration to include the metadata asappropriate. The metadata may be provided by the content owner orpublisher, generated in advance by a search provider, and/or generateddynamically in response to user interaction with a representation of theresult (either on a host or on the client).

FIG. 3 illustrates an exemplary GUI 300 enabling a user to select termsand resultant topics from a document 305 in order to generate resultsresponsive to a user's predicted interest. In particular, GUI 300illustrates how a search configuration and search results may include arepresentation both topics and the actual results themselves. Forexample, search configuration 320 includes both terms (“Wells” and“Padres”) and a topic (TOPIC1). Similarly, the results section 330includes three subtopics (TOPICS 1.1, 1.2, and 1.3) and three results(PAGES1-3). A user may interact with the topics and results to retrievemore responsive results.

In one implementation, manipulation of the search configuration and userinteraction with the results is monitored so as to determine results andareas of subject matter that are not responsive to a user's interest.For example, if a user navigates a portion of topic taxonomy (e.g.,TOPIC1.1 and TOPIC1.1's children) without accessing results related tothe navigated portion, user disinterest in the navigated portion may beinferred. As a result, the search configuration may be monitored toreflect the user disinterest. In one implementation, the userdisinterest is expressly confirmed and/or rendered. Thus, a user may beasked to confirm their disinterest in the navigated TOPIC (or metadatafor the TOPIC) before adding the user disinterest in the navigatedTOPIC. Alternatively, the user disinterest may be automatically added tothe search configuration. The user disinterest may be expressly renderedin that the search configuration 320 would include terms and/or topicsrepresentative of the user disinterest. Alternatively, the userdisinterest may be transparent so that the user need not manage a morecomplex search configuration. A transparent use of user disinterest maymodify a user search profile to reflect the terms, topics, or metadatadescriptive of the user disinterest. The user search profile then may beused by a search engine manipulating the data to return resultsresponsive to the user search profile in addition to a particular searchconfiguration.

FIG. 4 illustrates an exemplary GUI 400 enabling a user to select anadjacent sequence of terms (e.g., a phrase) from a document 405 in orderto generate results responsive to a user's predicted interest.Generally, GUI 400 is similar to GUIs shown in FIGS. 1-3. However, GUI400 illustrates that the search application may be configured to enableuser input of a phrase. As shown, a user begins selecting at a firstword (e.g., “San”) and continues selecting through a second word(“Diego”) onto a final word (“Padres”). For example, the user select aphrase by using a button on a mouse to select a first word, continueholding down the mouse as an icon is moved through additional words, andrelease the button after the mouse has been selected. Thus, as shown,“San Diego Padres” has been selected and is highlighted in the sourcedocument. Selecting “San Diego Padres” added the phrase “San DiegoPadres” to the search configuration 420.

Although GUI 400 illustrates how phrases expressly selected may be usedin a search configuration 420, other phrases or terms not expresslyselected in the source document also may be used in a searchconfiguration. For example, a particular word standing alone may have adiverse and inconsistent number of meanings. However, the word may beanalyzed using context information for the selected word. In oneexample, the context includes neighboring words, that is, words adjacentto the selected word or term as it is used. In another example, thecontext includes prominent words appearing elsewhere in the sourcedocument, in varying degrees or even independent of the proximity of theprominent word to the selected words. For example, as shown in GUI 400,the term “MLB” appearing in the left column may be used as contextualinformation to distinguish baseball results from non-baseball results.

In one implementation, the contextual information is passively enteredfrom the source document. For example, passively entering the contextualinformation may include using an application to automatically identifyprominent words appearing in the source document. In contrast, thecontextual information may be actively entered where a user is notifiedor prompted as to the inclusion or availability of contextualinformation. For example, the user may be notified that adding the terms“MLB” and “NL West” would lead or likely lead to more meaningfulresults. The user then may be prompted to use “MLB” and “NL West” to thesearch configuration.

FIG. 5 illustrates an exemplary GUI 500 enabling a user to select wordsfrom a document 505 that should not appear or be related to the searchresults. Generally, GUI 500 is similar to GUIs shown in FIGS. 1-4.However, GUI 500 illustrates that the search application may beconfigured to enable user input of terms that should not appear. Asshown, a user has selected “San Diego Padres” for inclusion from thesource document, and also selected that results related to “Cirillo”should not be included in the search results.

In one implementation, the negative limitations such as “Cirillo” areafter the “Subtract Words” or “Subtract Phrases” is selected in SearchControls 510. In another limitation, the user may select a sequence ofterms or phrases for negative limitations. In yet anotherimplementation, a first control (e.g., a left mouse button) is used toadd “positive” limitations to the search configuration while a secondcontrol (e.g., a right mouse button) is used add negative limitations tothe search configuration. As the positive or negative limitations areadded to the search configuration, the results may be automatically orperiodically updated to reflect a particular search configuration.

FIG. 6 illustrates an exemplary GUI 600 enabling a user to preserve asearch configuration generated from prior document as a subsequentdocument 605 is being presented. Generally, GUI 600 is similar to GUIsshown in FIGS. 1-5. However, GUI 600 illustrates that a searchconfiguration generated on a previous source document, such as thesource documents shown in FIGS. 1-4, may be preserved and used as abasis for searches with additional terms appearing in other sourcedocuments. As shown, terms from a prior configuration “Wells” and PADRESand TOPIC1 have been preserved while the web page acting as the sourcedocument has changed. Thus, by preserving all or part of a searchconfiguration, a user may explore modifications to the searchconfiguration based on terms appearing in other source documents thatmay be investigated.

FIG. 7 illustrates an exemplary GUI 700 enabling a user to specify arelative preference for terms that may be used to adjust the abruptdiscontinuity resulting from use of Boolean searching. Generally, GUI700 is similar to GUIs shown in FIGS. 1-6. However, GUI 600 illustratesthat a search configuration may include buttons enabling a user tospecify favoritism or “disfavoritism” for selected terms from a document705. Generally, favoritism relates to a user designation that elevatedor reduces the prominence of the favor/disfavored terms. As a result,results relating to favored terms may appear with a more relevantdesignation (e.g., by score) and/or are rendered before less relevantresults while results relating to disfavored terms would be designatedas being less relevant and/or less likely to be rendered compared toterms having more relevant results. Additionally, the favored/disfavoreddesignation may be used so that results otherwise relevant would bereturned when results do not relate to the favored/disfavored term. Forexample, a user may selectively invoke a favored/disfavored designationto observe the effect on results. Adding a term as a favored mayincrease the likelihood of less trafficked web site relating to anobscured favored term being identified while also identifying web sitesotherwise deemed relevant. In contrast, using Boolean constraints (e.g.,AND, OR, NOT) to require an obscure term may only identify those obscureweb sites and not identify the web sites otherwise deemed relevant.

In one configuration, a favoring/disfavoring control adjusts a weightingfactor for a search results. Favoring a term may add or positivelyadjust a score for a potential result. As a result, if query results areranked by relevance, i.e., according to a score, potential results thatreflect a favored term would appear earlier or more prominently as thequery results are rendered, while a disfavored term would appear lateror less prominently as the query results are being rendered.

In another configuration, a favoring/disfavoring control is used aslimited filter such that potential results that include the favored termare automatically presented earlier or more prominently than potentialresults that do not include the favored term.

FIG. 8 illustrates an exemplary GUI 800 enabling a user to access asearch configuration 820 and search results 830 in a display separateand distinct from the source document 805. In this manner, multiplesource documents may be simultaneously accessed to modify the searchconfiguration 820. Note that in GUI 800, a web page relating to Chicagosports is used as the source document. The search controls 810 enable auser to favor, disfavor, or require words appearing in the sourcedocument. As shown, the source document illustrates that “Guzman”, and“Cubs” have been selected. The search configuration 820 indicates that“Cubs” is required and “Guzman” is favored. Finally, the results portion830 includes TOPIC1, TOPIC2, PAGE1, and PAGE2.

FIG. 9 shows a communications system 900 that enables intelligentpresentation of results related to a term stream. Generally, a client910 exchanges communications relating to a term stream with a host 930using network 920. The host 930 analyzes the term stream to generateresults related to the term stream using, for example, a database 940(e.g., a yellow pages directory or a mapping system). The host 930provides one or more results to the client 910, which in turn displaysthe results.

Generally, the client 910 includes a computing device that enables auser to exchange information over a communications network. The client910 may include one or more devices capable of accessing content on thehost 930. The client 910 also may include a controller (not shown) thatprocesses instructions received from or generated by a softwareapplication, a program, a piece of code, a device, a computer, acomputer system, or a combination thereof, which independently orcollectively direct operations of the client 910. The instructions maybe embodied permanently or temporarily in any type of machine,component, equipment, storage medium, or propagated signal that iscapable of being delivered to the client 910 or that may reside with thecontroller at client 910. Client 910 may include a general-purposecomputer (e.g., a personal computer (PC)) capable of responding to andexecuting instructions in a defined manner, a workstation, a notebookcomputer, a PDA (“Personal Digital Assistant”), a wireless phone, acomponent, other equipment, or some combination of these items that iscapable of responding to and executing instructions.

In one implementation, the client 910 includes one or more informationretrieval software applications (e.g., a browser, a mail application, aninstant messaging client, an Internet service provider client, or an AOLTV or other integrated client) capable of receiving one or more dataunits. The information retrieval applications may run on ageneral-purpose operating system and a hardware platform that includes ageneral-purpose processor and specialized hardware for graphics,communications and/or other capabilities. In another implementation,client 910 may include a wireless telephone running a micro-browserapplication on a reduced operating system with general purpose andspecialized hardware capable of operating in mobile environments.

The client 910 includes one or more term stream code segments thatanalyze a term stream input to an information retrieval application. Theterm stream code segment receives the term stream and structures theexchange of the term stream with other software applications on theclient 910 and/or host 930. For example, the term stream code segmentmay wait initially wait until X initial terms are received beforesending a transmission to the host 930. The term stream code segmentthen may send updates to the host every Y subsequent terms.Alternatively, the term stream code segment may include a delay featureset that transmits an update to the term stream if there are Z secondsof user inactivity. Thus, when X is 3 (“three”) terms, Y is 2 (“two”)terms, and Z is 1 (“one”) second, the term stream code segment for auser who selects in “Prior Cubs Wood Wrigley Dusty” would requestresults 1) after “Prior Cubs Wood” 2) after “Prior Cubs Wood Wrigley”,and “Prior Cubs Wood Wrigley Dusty”. In the same example, if the userselected “Prior” and paused for more than a second (when Z=1 second andthe delay feature set is being used), the term stream code segment wouldsend the “Prior” term to the host for analysis.

The client 910 may include a preliminary analysis code segment toanalyze the term stream and send periodic updates. The preliminaryanalysis code segment screens the term stream to enhance the efficacy ofthe results generated for the term stream. In one example, thepreliminary analysis code segment identifies one or more databases orsegments likely to be associated with the predicted interest of aconsumer. Thus, when “20005” is entered, the preliminary analysis codesegment may instruct an instruction in the transmission to the host 930to poll geographic information related to zip code 20005. Other examplesmay include the preliminary analysis code segment identifying a serviceindustry (e.g., plumbers), a segment (e.g., online music), or acombination of factors (e.g., plumbers in zip code 20005) as relevant tothe results that are sought by the user. With the preliminary factorsidentified, the transmission may be sent to an appropriate database, ora query may be modified as a result of performing the preliminaryanalysis.

In another example, the preliminary analysis code segment also maycorrelate information that has been learned about a user with the termstream. If the client is believed to be operating in a particular area(e.g., based on billing information for the user), the term stream canbe modified to instruct the host 930 that results should be responsiveto the user's address of record. Similarly, the preliminary analysiscode segment may interface with a cache or user history to betteridentify results for the user. Thus, if a history of user activityindicates that the user is interested in National Football Leaguesporting events, the preliminary analysis code segment may tailorresults based on the relationship of the results to American Footballrather than International Football (soccer). The preliminary analysiscode segment also may retrieve and display locally stored results beforethe host 930 is accessed.

The client 910 may include a communications code segment that interfaceswith the information retrieval code segment (e.g., browser or key wordtool) to modify the term stream results to reflect the networkenvironment of the client. For example, when the client 910 includes awireless phone with limited bandwidth, the communications code segmentmay structure the communications exchange to limit the amount of data inresults that are returned so as not to overwhelm the network 920. Thismay include filtering the results so that no more than a specifiednumber of results are returned. Similarly, the format of the results maybe modified to reduce the bandwidth of results. For example, resultstransmitted to the client 910 may have the graphics or images removedfrom the application.

The client may include a display code segment that tailors the resultsto a display device (e.g., a monitor or a LCD (“Liquid CrystalDisplay”)). The display code segment may manage the presentation ofresults so that only the most likely results are presented. The displaycode segment may interface with the host 930 so that the number ofresults does not overwhelm the memory or display capabilities of theclient. In one example, the display code segment may instruct the host930 to transmit no more than a specified number of results. In anotherexample, the display code segment may instruct the host 930 to notreturn any result items larger than a specified size.

The client 910 may include one or more media applications. For example,the client 910 may include a software application that enables theclient 910 to receive and display an audio or video data stream. Themedia applications may include controls that enable a user to configurethe user's media environment. For example, if the media application isreceiving an Internet radio station, the media application may includecontrols that enable the user to select an Internet radio station, forexample, through the use of “preset” icons indicating the station genre(e.g., country) or a favorite.

The network 920 may include hardware and/or software capable of enablingdirect or indirect communications between the client 910 and the host930. As such, the network 920 may include a direct link between theclient 910 and the host 930, or it may include one or more networks orsubnetworks between them (not shown). Each network or subnetwork mayinclude, for example, a wired or wireless data pathway capable ofcarrying and receiving data. Examples of networks include the Internet,the World Wide Web, a WAN (“Wide Area Network”), a LAN (“Local AreaNetwork”), analog or digital wired and wireless telephone networks,radio, television, cable, satellite, and/or any other delivery mechanismfor carrying data.

The host 930 is generally capable of executing instructions under thecommand of a host controller (not shown). The host 930 may include oneor more hardware components and/or software components. An example of ahost 930 is a general-purpose computer (e.g., a server or a mainframecomputer) capable of responding to and executing instructions in adefined manner. Other examples include a special-purpose computer, aworkstation, a PC, a device, a component, other physical or virtualequipment, or some combination thereof capable of responding to andexecuting instructions.

The controller is a software application loaded on the host 930 forcommanding and directing communications exchanged with the client 910.Other examples include a program, a piece of code, an instruction, adevice, a computer, a computer system, or a combination thereof, forindependently or collectively instructing the client 910 or the host 930to interact and operate as described. The host 930 may be embodiedpermanently or temporarily in any type of machine, component, physicalor virtual equipment, storage medium, or propagated signal capable ofproviding instructions to the client 910 or the host 930.

The controller may include one or more information providingapplications to support information retrieval requests sent from theclient 910. The information providing applications may include a resultscode segment that receives a term stream from the client 910 andgenerates results responsive to a predicted interest by an individualuser. Thus, the results code segment may generate one or more resultsbased on the exchange of a term stream received from a client 910.

The results code segment also may receive term stream modifiers receivedfrom the preliminary analysis code segment, the communications codesegment, the display code segment, and/or other code segments thatmodify a term stream transmission from the client. The results codesegment may process the term stream in accordance with these modifiers.The host 930 also may operate code segments that perform operationssimilar to the feature sets in the preliminary analysis code segment,the communications code segment, and the display code segment. Thesehost-oriented versions of these code segments may interface with theresults code segment to modify the analysis performed and/or the resultsthat are returned. For example, the host 930 may initially access acache of content previously requested by the user. Thepreviously-returned results may be analyzed for relevancy beforeadditional analysis is performed or additional systems are polled.

The host 930 may interface with a database 940 to analyze the termstream. Generally, the database 940 includes storage for a volume ofdata and a processing engine that enables the data to be sorted,searched, and analyzed. The database may be organized along functionalcriteria. For example, a mapping database may be organized bygeographical region, while a yellow pages database may be organized bybusiness as well as geographic criteria. In one example, the databasemay be structured to perform a more detailed analysis on a term streamprovided by a host 930. For example, a host 930 may receive a termstream from a client and redirect queries to one or more databases 940.Each of the redirected queries may be modified to further refine theredirected query. For example, a query redirected to a yellow pagesdirectory may have the zip code added as a selection term. Similarly, aquery directed to a database that provides stock quotes may include areference describing which stocks are of interest to the user (e.g.,stocks owned by the user).

Referring to FIG. 10, a flow chart 1000 illustrates how a client 1001may use a host to intelligently present results related to a termstream. Generally, the systems in flow chart 1000 relate to the systemsdescribed in FIG. 9.

Initially, the client 1001 presents terms within a document andconfigures the presented terms as an arrangement of selectable terms(1010). For example, a client may load a web page. Identification of oneor more terms within the arrangement of selectable search terms isenabled (1020). For example, a user may load a web page toolbarassistant that enables a user to select terms within the web page. Theuser may identify terms using a mouse or touch screen. For example, auser may select one or more terms appearing in a web page to add theterms to a search configuration.

The client 1001 generates a query string that includes terms from withinthe arrangement (1030). Although generating a query string (e.g., asearch configuration) is shown as being performed on the client 1001,the search configuration also may be generated on the host 1002 and/oron a combination of the client 1001 and the host 1002. In oneimplementation, selecting a term automatically sends the selected termto a host 1002 for inclusion in a search configuration. In anotherexample, the client 1001 generates a search configuration on the client1001 and sends the search configuration and updated searchconfigurations to the host 1002 as a result. In yet another example, aninitial search configuration may be locally generated on the client1001. The initial search configuration then may be transmitted to thehost 1002 for analysis. The client 1001 then may receive results fromthe host 1002, and enable the user to interact with the results tomodify the search configuration. In response to user modification, theclient 1001 may analyze and display updated results responsive to themodification while the host 1002 in parallel receives an updated searchconfiguration for additional processing and retrieval.

In any event, the host 1002 receives the query string (1030) and appliesthe query string to a search interface (1040). Typically, applying thequery string includes the host 1002 analyzing the term stream. Analyzingthe term stream may include relating the received term stream to one ormore results that are responsive to a predicted interest by the user. Inone example, the term stream may be compared with metadata labels usedto describe content accessible to the host 1002. For example, when theterm stream includes “Prior”, the host 1002 may anticipate that “Cubs”will eventually be entered and identify web pages that feature theChicago Cubs in the web page and/or are summarized by metadata labels(e.g., “Chicago Cubs”). However, the host 1002 need not find identicalterm matches. For example, the host 1002 may predict that a userentering “Mark Prior” is predictive of an interest in baseball.Accordingly, when the host 1002 analyzes the results, the host 1002 mayalso identify results related to baseball, even if the results are notrelated to Mark Prior.

Analyzing the term stream may include ranking the relative relevancy ofresults. For example, widely visited baseball web sites (e.g., MajorLeague Baseball's web site) may be scored as more relevant to a baseballfan than a web site that includes a Chicago resident's personal baseballweb log (“blog”). The results may be generated in such a manner that themore relevant results are returned before the less relevant results.

With the term stream analyzed and the results identified, the host 1002exchanges results with the client 1001. The results may be controlled soas to comply with the network or display constraints of the client. Forexample, if the network has limited bandwidth or the client has limiteddisplay capabilities, the host 1002 may structure the transmission toavoid network congestion or may modify the results so as provide moresuitable results (e.g., by removing images from the results that arereturned). As a result, the host 1002 provides the query results (1050)to the client 1001, which receives the query results (1060).

The client 1001 may perform additional processing to review the resultsto increase the efficacy of the display. For example, the client 1001may relate the returned results to a user profile and tailor the resultsto be displayed accordingly. In another example, the client may analyzethe results to better develop the user profile and interests to increasethe efficacy of subsequent term stream operations. Regardless of whetherthe results undergo intermediary processing, the client 1001 presentsthe query results (1070). The query results are presented in a mannerthat enables the user to select one of the results to invoke anapplication or present a more complete form of the result. For example,as a user selects a term stream in a key word retrieval application, adynamically updated window of results may appear in the key wordretrieval application with one or more likely results. As the usercontinues to select terms to modify the search configuration, theresults appearing in the search results window (or a pane in a window)may be tailored to reflect the latest analysis of the term stream. Theclient 1001 receives the user selection from the results (1080).Selection of a result causes the application to launch a code segmentrelated to the selected result (1090). For example, when the userselects a result describing a map of an area, a web browser accessing amapping web site may be launched to display a map related to theinputted term stream.

FIG. 11 shows a flow chart 1100 illustrating how a client 1101 maymodify a search configuration through explicit and implicit instructionsfrom the user. Generally, the operations shown in flow chart 1100 relateto update operations that are performed after an initial query has beenperformed and results responsive to the initial query have beengenerated (e.g., operation 1110). When perceiving the display, theclient 1101 adds a favored term (1120). For example, the client 1101 mayselect an additional term and designate that results related to theadditional term should be favored, that is, results related to thefavored term should be rendered before results that do not relate to thefavored term. The search configuration is modified to included thefavored term and results responsive to the favored term are presented(1130). For example, the client 1101 may transmit an update to the host1102 indicating that results from the previous search configurationshould be analyzed for a relation to the favored term. Results relatingto the favored term should thus appear as more relevant when an updateddisplay is rendered.

The client 1101 then elects to investigate TOPIC1 but not select anyresults related to TOPIC 1 (1140). For example, the client 110 mayselect a topic that appears in a search results window (e.g., a userselects TOPIC1 in the resultant topics 130 shown in FIG. 1). Selectingthe topic may render results related to the topic so that the user maybetter understand which content is related TOPIC1. After perceiving theresults, the user may select a “Go Back” button or control that enablesthe user to return to a prior search configuration/results display, thatis, a results display used before TOPIC1 was investigated. However, as aresult of determining that user was able to perceive results related toTOPIC1 without selecting any of the results related to TOPIC1, userdisinterest in TOPIC1 may be inferred. Thus, the search configurationand the results reflect a disinterest in TOPIC1 (1150).

The user then changes to a different source document (1160). Forexample, the user may select a hyperlink appearing in a web page. Eventhough the source document has changed, the search configuration hasbeen preserved (1170). For example, the search configuration thatappears in the right column of a web browser may continue to appear eventhough the user has selected a different web page.

Perceiving that the different source document may include information ofuse in retrieving results responsive to a user's predicted interest, anadditional display is presented with suggested results responsive to thedifferent source document (1180). In one implementation, a search toolin a web browser may prompt a user with a statement that “the presentdocument includes information that may be used in generating moreprecise search results. Would you like to modify your searchconfiguration using the present source document?” In response to useragreement, the search configuration may be modified to include metadataderived from the source document. In another implementation, the searchconfiguration may be automatically updated after a first period of time(e.g., 30 seconds) to add metadata from the source document to thesearch configuration. In yet another implementation, a different searchpane may be added in addition to an existing pane that uses a searchconfiguration based on information from the different source document.The different search pane may be generated automatically or may be addedin response to a user agreement to add a different search pane. Thesearch configuration for the different pane may explicitly show metadataor terms from the different source document, or the metadata/terms maybe transparent to the user.

Other implementations are in the scope of the following claims. Forexample, although the operations described examples of retrievingresults that relate to terms or phrases appearing in one or more sourcedocuments, the results need not include the information that willultimately be displayed upon launching a code segment. Rather, theresults may include a label that describes the results that may besubsequently retrieved if accepted.

Similarly, the client and host applications may include assistants andspelling correction agents configured to work in conjunction with theunderlying document and/or information separate from the source documentthat was inputted by the user (e.g., the user types in TERM in theADDITIONAL TERMS field of search controls 110 in FIG. 1) in order toincrease the efficacy of retrieved results. Assistants also may help theuser by retrieving similar results related to the predicted characterstream's meaning. For example, if the character stream includes “Germanautomobiles,” results that include prominent manufacturers of Germanautomobiles, including Mercedes, BMW, and Audi, may be retrieved.Spelling correction agents may recognize that the user has likelyentered a typographical mistake. In response, the spelling correctionagents may correct the term stream by altering the entered term streamon the desktop and/or by retrieving results related to the predictedentry.

Similar to the spelling correction agent, the system may include avalidation agent that may be used to validate a URL (“Uniform ResourceLocator”) entered in the term stream. For example, when the user entersthe address for a web site, the web site address may be analyzed todetermine if the device and file information actually exists and/or iscorrect. When the URL information is incorrect, the system may resolvethe term stream to identify the correct or related URL address.

The client may be used to intelligently present results related to mediacommunications such as streaming audio and video communications. Forexample, a content provider or a service provider may be distributing alarge number of “channels” or bands of discrete presentations. A usermay wish to survey the channels to find channels presenting informationmost relevant to the user's interests. Accordingly, the user may accessa source document with one or more terms that the user selects to findcontent the user finds of interest. For audio content, the term streammay relate to an artist, album, or selection (e.g., song) name. Forvideo content, the term stream may relate to a particular newsaffiliation (e.g., TIME or CNN), show, episode, or subject matter. Inany event, regardless of the underlying content, the sequence of termsmay be used to retrieve results related to the user's interests asexpressed in the term stream. This may be performed by comparing theentered term stream with metadata or subtitles associated with aparticular media selection. In one instance, the term stream may becompared with the subtitles for available programming to identifyresults for the user. Thus, when the user enters the name in a termstream of a newsmaker, the subtitles of all available programming(including on-demand and broadcast streams) may be searched to identifymedia streams featuring the newsmaker.

The systems and operations may be modified to operate in an Intranet ortrusted environment. For example, rather than searching publicdatabases, the system may be configured to incorporate securityprocedures and practices associated with a trusted environment. Thus, asales employee may be allowed to access customer and marketing databasesin analyzing the term stream. Engineering personnel may be allowed toreview technical and operational support databases to support theirmission, but may be precluded from analyzing the term stream using asales database. Management and/or investigatory personnel may be allowedto access most or all databases in analyzing a term stream.

The results may be stored on the client and/or the host. For example,the host may cache previously returned results that may be used whenanalyzing subsequent term streams. In another example, previouslyselected results may be stored on the client and subsequent term streamsmay initially be accessed using the previously-stored results.

The client may enable the user application to launch a messaging codesegment. Alternatively, the user may use a messaging application as asource document from which a term stream is generated. For example, theuser may use an instant messaging application as a source document. Usercontrols may enable user manipulation of the instant messagingapplication to transmit the term stream to a host for analysis. Theclient may receive the results and enable the client to access relevantresults.

The search application may include an update code segment configured toprovide additional search results based on newly entered terms and/or asresults perceived to be more relevant become available. For example, asearching code segment may begin querying a host when a threshold ofterms is entered and then query the host upon receiving updates withadditional terms. Exchanging the updates may include exchanging only theportion of the term stream that has changed since the term stream waslast exchanged. For example, as a user selects terms appearing in afirst application, the first application may send a message to the hostwith the initially entered term stream (e.g., “Chicago”). As the userenters updates to the term stream (e.g., by selecting “Cubs”), theclient may send the new information without sending the old information(e.g., the client subsequently sends “Cubs” instead of “Chicago”).Alternatively, the client may send the current term stream (e.g.,sending “Chicago” and “Cubs”).

The client and/or host may determine that there are no relevant resultsand operate to preclude additional processing resources from being used.For example, the user may be entering term streams for which the hosthas no information and generates no results. When the host determinesthat there is no information, the host may interface with the client toprevent additional updates from being exchanged. Such a condition occurswhen the user enters a term stream that does not relate to contentaccessible by the host. For example, the host may determine thatTERMSTREAM1 will not yield any results, and no additional terms to therequired terms in TERMSTREAM1 will yield any results. If the user entersadditional terms, such as TERMSTREAM123, the first application may beconfigured to not send any updated information to the host. However, ifthe user removes terms from the term stream so that TERMSTREAM1 ischanged to TERMSTREAM, the term stream may be exchanged.

The client may perform preliminary analysis to preclude common terms inthe term stream from being analyzed where the common term streamgenerates results that are not responsive to the predicted interest of auser. For example, when “the” appears in a term stream, particularly inan initial portion of the term stream, generating results using the termstream “the” likely generates too many results, few, if any, of whichare responsive to the predicted interest of the user. Accordingly,exchanging the term stream may be delayed until the term stream ismeaningful. Thus, exchanging the term stream “the” may be delayed untilterm stream reads “the Greek islands” or another term stream likely togenerate meaningful results. Similarly, the term stream may berestructured to remove strings in the term stream not likely to assistin the analysis (either on the client or the host). Thus, stringsappearing in the term stream such as “the”, “a”, and “this” may beremoved from the term stream prior to exchanging the term stream.

The results and additional information descriptive of results previouslyreturned or selected may be stored on the client and/or the host. Forexample, the most recently accessed results may be cached on the client,while a more extensive history of results may be cached on the host. Thestored results may be accessed and used to analyze and generate resultsresponsive to a user's predictive interest.

To illustrate how stored results may be used to analyze a subsequentterm stream, a previous search related to the National Football League(NFL) may generate a series of metadata tags. These metadata tags may bestored in a profile associated with the user. For example, the usersearching for NFL-related information may have the metadata tags “NFL”,and “Football” added to their user profile. The metadata tags may beused in performing subsequent analysis. Thus, when the user types in“Falcons”, additional metadata tags related to the multiple meanings of“Falcons” may be generated and analyzed using the metadata tagspreviously generated. Examples of metadata tags related to Falcons mayinclude terms such as “NFL”, “Audubon Society”, and “Sport of Kings”.The metadata tags from the previous search on the NFL may be comparedagainst metadata tags generated by entering “Falcons”. By correlatingthe results from a previous search with known metadata tags for the termof interest, results that are likely to be more responsive to thepredicted interest of a user are returned. In this case, correlating theresults of the previous search with the present search generates resultsrelated to the NFL's Atlanta Falcons.

The results from multiple users may be used to determine results thatare more responsive to a predictive interest of a different user. Forexample, if most of the users entering “Falcons” as a term stream aredetermined to be interested in the NFL, a default rule may be createdand adopted that returns results related to the NFL sports team inresponse to “Falcons.” A finer analysis may be performed by suspendingthe default rule when the user has a profile or has expressed aninterest in other, non-sports aspects of “falcons” or used modifierssuch as “birds”, “Audubon Society”, or “kestrels”.

Other implementations are within the scope of the following claims.

What is claimed is:
 1. A method of presenting information to a user, themethod comprising: presenting terms within a document to visuallydistinguish selectable candidate search terms that are included withinthe document from other terms that are included within the document;enabling selection of one or more of the selectable candidate searchterms from within the document; generating a query string that includesthe selected candidate search terms; applying the query string to asearch interface; receiving query results based on the applied querystring; and presenting the query results.
 2. The method of claim 1wherein presenting the query results includes: retaining the arrangementof the document on a visual display when visually distinguishingselectable candidate search terms from other terms within the document;and enabling selection of one or more of the selectable candidate searchterms from within the document by detecting selection of a portion ofthe screen real estate dedicated to presenting the document andcorresponding to the selected candidate search terms.
 3. The method ofclaim 1 wherein generating a query string includes generating a querystring that expressly excludes or disfavors candidate search termsselected from within the document.
 4. The method of claim 1 whereingenerating the query string includes generating a query string thatexpressly includes or favors candidate search terms selected from withinthe document.
 5. The method of claim 1 wherein generating the querystring includes generating a compilation of candidate search terms frommultiple documents.
 6. The method of claim 5 wherein generating thecompilation of candidate search terms from multiple documents includesrevising the query string as a user progresses through the multipledocuments and selects the candidate search terms from at least twodifferent documents in the multiple documents.
 7. The method of claim 1wherein presenting the query results includes presenting resultant pagesin association with the document so that the user may perceive an effectof selecting the candidate search term on the query results.
 8. Themethod of claim 1 wherein enabling selection of the one or more termswith the arrangement of candidate search terms includes presenting asearch control enabling a user to specify an input mode.
 9. The methodof claim 8 wherein presenting the search control includes presenting anadditive control configured to add the selected candidate search termsto the search query in response to selecting a candidate search term inthe document.
 10. The method of claim 8 wherein presenting the searchcontrol includes presenting a subtractive control configured to add theselected candidate search terms to the search query as terms that shouldnot appear in the query results.
 11. The method of claim 1 furthercomprising: enabling the user to continue to select one or moreadditional candidate search terms as the query results are beingpresented; using the additional candidate search terms to modify thequery string; applying the modified query string to the searchinterface; receiving updated results based on the applied query string;and presenting the updated results so that the user may perceive aneffect of modifying the query string in differences between the queryresults and the updated results.
 12. The method of claim 1 furthercomprising: presenting one or more topics responsive to the querystring; enabling the user to modify the query string with inclusion orexclusion of at least one of the topics; applying the query string tothe search interface; receiving the query results based on the appliedquery string; and presenting the query results so that the user mayperceive an effect of modifying the query string based on modifying thequery string with inclusion or exclusion of the at least one topic. 13.The method of claim 1 wherein enabling selection of the candidate searchterms includes: enabling the user to specify interest in a portion ofthe query results or interest in avoiding the portion of the queryresults; and generating the first results responsive to the userspecifying interest in the first results related to the selectedcandidate search terms or interest in avoiding the query results relatedto the selected candidate search terms.
 14. The method of claim 1further comprising: transparent to the user, automatically analyzing thedocument to generate contextual information; and using the contextualinformation as the query string is applied to the search interface. 15.The method of claim 1 further comprising: transparent to the user,automatically accessing non-selected terms appearing in the documentrelated to the selected candidate search terms; and using thenon-selected terms as the query string is applied to the searchinterface.
 16. The method of claim 1 further comprising: monitoring usermanipulation of the query results; determining that the userinvestigated a portion of the query results; determining that theportion was not responsive; modifying the query string to reflect thatthe portion was not responsive to the user's predicted interest.
 17. Themethod of claim 16 wherein determining that the portion was notresponsive includes prompting the user to confirm that the portion wasnot responsive.
 18. The method of claim 16 wherein determining that theportion was not responsive includes specifying that the portion was notresponsive without confirmation from the user.
 19. The method of claim 1further comprising: maintaining the query string as the user changes thedocument; and enabling the user to modify the query string with thecandidate search terms after changing the document.
 20. The method ofclaim 1 further comprising enabling the user to specify that queryresults associated with less viewership should be rendered before queryresults associated with more viewership.